package com.taxigang.server;

import java.util.Collection;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import com.google.appengine.api.datastore.Key;
import com.taxigang.persistence.EMF;
import com.taxigang.shared.ChitInfo;
import com.taxigang.shared.TaxiGangInfo;
import com.taxigang.shared.TaxiGanguserInfo;

public class ChitDAO {
	EntityManager em = EMF.get().createEntityManager();

	public EntityManager getEntityManager() {return em; }

//	synchronized public boolean add(Chit chit) {
//		EntityManager em = getEntityManager();
//		try{
//			em.getTransaction().begin();
//			em.persist(chit); 
//			em.getTransaction().commit();
//		} finally {
//			//em.close();
//			return false;
//		}
//	}
//
//	synchronized public boolean add(TaxiGangInfo taxiGangInfo, TaxiGanguserInfo taxiganguserInfo, String message) {
//		Chit chit = new Chit(taxiGangInfo.getId(),taxiganguserInfo,message);
//		EntityManager em = getEntityManager();
//		try{
//			em.getTransaction().begin();
//			em.persist(chit); 
//			em.getTransaction().commit();
//		} finally {
//			//em.close();
//		}
//		return true;
//	}
//
//	//* Next  add the code to ChitController to remove a record
//
//	synchronized public boolean remove(Chit chit) {
//		EntityManager em = getEntityManager();
//		try{
//			em.getTransaction().begin();
//			Chit userx = em.find(Chit.class, chit.getId());
//			em.remove(userx); 
//			em.getTransaction().commit();
//		} finally {
//			//em.close();
//			return false;
//		}
//	}
//
//	//* Finally add the code to ChitController to update a record
//
//	synchronized public boolean update(Chit chit) {
//		EntityManager em = getEntityManager();
//		try{
//			em.getTransaction().begin();
//			Chit feedbackx = em.find(Chit.class, chit.getId());
//
//			//other fields
//			em.getTransaction().commit();
//		} finally {
//			//em.close();
//			return false;
//		}
//	}
//	
//	synchronized public ChitInfo[] get(TaxiGang taxigang){
//	//get chits for taxigang
//		Query query = em.createNamedQuery("Chit.findByTaxiGang");
//		query.setParameter("taxigangkey", taxigang.getKeyId());
//		List<Chit> list = query.getResultList();
//		ChitInfo[] chitArray = new ChitInfo[list.size()];
//		int chitIndex =0;
//		for (Chit chit : list){
//			chitArray[chitIndex++]=chit.getInfo();
//		}
//		return chitArray;
//	}
//
//
//	synchronized public ChitInfo[] getAll(){
//
//		Query query = em.createNamedQuery("Chit.findAll");
//		Collection<Chit> chits = query.getResultList();
//
//		//TODO filter
//		ChitInfo[] list = new ChitInfo[chits.size()];
//		int index =0;
//		for (Chit feedback: chits){
//			list[index++] = feedback.getInfo();
//		}
//		return list;
//
//	} // end method getTaxiGangs
//
//	private Chit get(long id) {
//		return  em.find(Chit.class, id);
//	}
}
